package com.example.service;

import com.aspose.pdf.Document;
import com.aspose.pdf.DocSaveOptions;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

@Service
public class PdfToWordService {

    public String convertPdfToWord(MultipartFile file) throws IOException {
        // 定义输出路径，这里假设是用户桌面
        String outputFilePath = System.getProperty("user.home") + "/Desktop/converted_" + System.currentTimeMillis() + ".docx";

        // 加载PDF文件
        try (FileOutputStream outputStream = new FileOutputStream(new File(outputFilePath))) {
            // 使用Aspose.PDF的Document类加载PDF
            Document pdfDocument = new Document(file.getInputStream());

            // 创建保存选项，设置为Word格式
            DocSaveOptions saveOptions = new DocSaveOptions();
            // 设置为DOCX格式
            saveOptions.setFormat(DocSaveOptions.DocFormat.DocX);

            // 设置识别模式为Flow模式，确保文本段落保持流式排列
            saveOptions.setMode(DocSaveOptions.RecognitionMode.Flow);

            // 启用项目符号识别，以保留列表样式
            saveOptions.setRecognizeBullets(true);

            // 保存为Word文件
            pdfDocument.save(outputStream, saveOptions);
        }

        return outputFilePath;
    }
}
